您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

基于场景的处理器系统级验证完备性度量方法

  • 申请号:CN201310164429.X 申请公布号: CN103268272B
  • 申请日: 2013-05-07 申请公布日: 2014-07-23
  • 申请(专利权)人: 专利代理机构: 湖南兆弘专利事务所
  • 分类号:G06F11/26

专利介绍

本发明公开了一种基于场景的处理器系统级验证完备性度量方法,其实施步骤如下:1)根据处理器的应用领域构造典型应用场景;2)针对每一个应用场景,构造场景测试环境,使用场景测试用例对处理器进行测试,根据测试完成情况生成场景信度,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值;通过系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则返回步骤2)继续对信度低的应用场景进行测试;如果能满足处理器的流片要求则结束测试并退出。本发明能够通过定量描述处理器涉及的验证可信度为流片提供依据,具有验证速度快、验证效率高、测试环境利用率高、验证时间短的优点。
1.一种基于场景的处理器系统级验证完备性度量方法,其特征在于实施步骤如下:1)根据处理器的应用领域构造典型应用场景;2)从所述典型应用场景中选择一个应用场景作为当前应用场景,在操作系统层面使用测试用例针对所述当前应用场景对处理器进行测试,根据正确完成的测试用例数量占当前应用场景下所有测试用例数量总和的比例生成场景信度,且将未测试应用场景的场景信度定义为0,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值;根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则返回执行步骤2)对下一个场景信度低于预设阈值的应用场景继续进行测试;如果能满足处理器的流片要求则结束测试并退出;所述步骤2)的详细步骤如下:
2.1)针对所述典型应用场景中每一个应用场景分别设置权重和信度系数,所述权重为当前应用场景的测试项目在整个系统级验证中所有应用场景中的所有测试项目中所占的比例,所有应用场景的权重之和为1;所述信度系数为当前应用场景的测试项目所用到的处理器部件数量占处理器所有部件的比例,信度系数的值小于等于1;
2.2)为所述典型应用场景中的每一个应用场景分别准备场景测试环境和测试用例;
2.3)根据场景测试环境对所有应用场景进行归类集中,选择一个场景测试环境下的一个当前应用场景,跳转执行步骤2.4);
2.4)在操作系统层面使用测试用例针对当前应用场景对处理器进行测试,获取当前应用场景下正确完成的测试用例数量,根据正确完成的测试用例数量占当前应用场景所有测试用例数量总和的比例生成当前应用场景的测试完备度;根据当前应用场景的测试完备度和当前应用场景的信度系数生成当前应用场景的场景信度;将未测试应用场景的场景信度定义为0,根据所有应用场景的场景信度和所有应用场景的权重获取加权平均值作为当前应用场景的系统级验证完备性度量值;
2.5)根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则判断当前的场景测试环境下是否仍有场景信度低于预设阈值的应用场景,如果当前的场景测试环境下仍有场景信度低于预设阈值的应用场景则在当前的场景测试环境下选择一个场景信度低于预设阈值应用场景作为当前应用场景,如果当前的场景测试环境下没有场景信度低于预设阈值的应用场景则选择下一个场景测试环境下场景信度低于预设阈值的一个应用场景作为当前应用场景,最终选择好当前应用场景后跳转执行步骤2.4);如果能满足处理器的流片要求则结束测试并退出。
2.根据权利要求1所述的基于场景的处理器系统级验证完备性度量方法,其特征在于:所述步骤2.4)中生成当前应用场景的场景信度具体是指根据式(1)生成;ω=(TestCasefinished/TestCaseall)×ξxa0xa0xa0(1)式(1)中,ω为场景信度,TestCasefinished当前应用场景下已正确完成的测试用例数量,TestCaseall为当前应用场景下的所有测试用例数量总和,ξ为当前应用场景的信度系数,×为乘法运算符。
3.根据权利要求1或2所述的基于场景的处理器系统级验证完备性度量方法,其特征在于:所述步骤2.4)中获取加权平均值具体是指根据式(2)获取加权平均值作为系统级验证完备性度量值; W = Σ i = 0 n ( ω i × φ i ) - - - ( 2 ) ]]>式(2)中,W为用于作为系统级验证完备性度量值的加权平均值,ωi为所有应用场景中第i个应用场景的场景信度,φi为所有应用场景中第i个应用场景的权重,×为乘法运算符,n为所有应用场景的总数目,未测试应用场景的场景信度ωi的值为0。技术领域
本发明涉及处理器设计的正确性验证领域,具体涉及一种基于场景的处理器系统级验证完备性度量方法。
背景技术
处理器设计过程中,一个非常关键的问题是如何确认设计的正确性。由于现代通用处理器设计的复杂性,导致其验证过程更加复杂。Intel的Pentium4处理器有100多万行代码,近42M晶体管。其功能验证组就有近70多人,从全芯片代码稳定到投片的验证周期近3年(1997年~1999年),投片后还用了近10个月进行硅片后验证。虽然SoC(System-on-a-Chip,又称为片上系统)技术大大降低了通用微处理器的设计和验证复杂性,但其验证工作仍然庞大。为了提高验证质量,保障验证进度,有必要对其进行严格的验证和科学的管理。一般来讲,处理器设计过程中会经历多个验证阶段,使用多种验证方法。处理器验证流程可初步分为概念级、结构级、模块级、全芯片、系统级和投片后验证等六个阶段。使用的验证环境包括定制的功能和性能模拟器(时钟精确、指令精确)、EDA软模拟器、专用In-Circuit验证设备以及原型系统等。从支持的验证目标上可以分为对设计概念与结构设计可行性的验证、对逻辑设计功能与性能的验证、对固件/操作系统等软件进行并行早期开发设计的验证支持系统。使用的验证方法从测试集产生方法上主要分为面向特定功能和特定设计的定向测试,以及面向全芯片与整系统的长时间和随机回归测试。系统级验证是流片前最后一个验证阶段,是处理器验证的重点。这时会在硬件仿真器上模拟一个完整的处理器设计,运行包括BIOS、操作系统在内的与流片后实际芯片运行一致的软件堆栈,在操作系统层面对处理器设计进行测试。如图1所示,传统的处理器系统级验证分为硬件测试和软件测试两大部分,硬件测试包括对功耗、存储、I/O、互连、RAS、Debug等进行测试,测试内容包括通路测试、各种配置的测试、各种访问事务的测试、数据相关性测试、压力测试;软件测试是在仿真环境下构建和运行真实软件应用的验证过程,具体参见图1,在此不再赘述。但是,传统的处理器系统级验证测试分类细致,主要着眼于处理器各子系统模块、功能点以及模块组合,采用这种方式的验证过程,工作繁琐,验证周期难以控制,并且容易导致过度测试。另一方面,由于仿真器限制,系统软件运行的速度无法和真实处理器环境相比。通常,仿真器模拟的处理器频率只有1M左右,因此导致验证速度慢,有限时间内能完成的测试验证内容受限。因此,如何在有限的时间内,对处理器设计进行高效合理的测试,最大限度的保证测试充分性,避免过度测试,保证处理器设计能够尽快正确的流片是一个非常重要的问题。实际情况是,系统级验证阶段无法对处理器各部件进行覆盖性测试,覆盖测试不是系统级验证应该考虑也考虑不了的问题。同时,怎样定量描述验证完备性,而不是依靠经验定性判断当前验证是否充分,也是一个重要的研究课题。
发明内容
本发明要解决的技术问题是提供一种能够定量描述处理器系统级验证阶段验证可信度、验证速度快、验证效率高、测试环境利用率高、验证时间短的基于场景的处理器系统级验证完备性度量方法。为了解决上述技术问题,本发明采用的技术方案为:一种基于场景的处理器系统级验证完备性度量方法,其实施步骤如下:1)根据处理器的应用领域构造典型应用场景;2)从所述典型应用场景中选择一个应用场景作为当前应用场景,在操作系统层面使用测试用例针对所述当前应用场景对处理器进行测试,根据正确完成的测试用例数量占当前应用场景下所有测试用例数量总和的比例生成场景信度,且将未测试应用场景的场景信度定义为0,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值;根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则返回执行步骤2)对下一个场景信度低于预设阈值的应用场景继续进行测试;如果能满足处理器的流片要求则结束测试并退出。作为本发明上述技术方案的进一步改进:所述步骤2)的详细步骤如下:2.1)针对所述典型应用场景中每一个应用场景分别设置权重和信度系数,所述权重为当前应用场景的测试项目在整个系统级验证中所有应用场景中的所有测试项目中所占的比例,所有应用场景的权重之和为1;所述信度系数为当前应用场景的测试项目所用到的处理器部件数量占处理器所有部件的比例,信度系数的值小于等于1;2.2)为所述典型应用场景中的每一个应用场景分别准备场景测试环境和测试用例;2.3)根据场景测试环境对所有应用场景进行归类集中,选择一个场景测试环境下的一个当前应用场景,跳转执行步骤2.4);2.4)在操作系统层面使用测试用例针对当前应用场景对处理器进行测试,获取当前应用场景下正确完成的测试用例数量,根据正确完成的测试用例数量占当前应用场景所有测试用例数量总和的比例生成当前应用场景的测试完备度;根据当前应用场景的测试完备度和当前应用场景的信度系数生成当前应用场景的场景信度;将未测试应用场景的场景信度定义为0,根据所有应用场景的场景信度和所有应用场景的权重获取加权平均值作为当前应用场景的系统级验证完备性度量值;2.5)根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则判断当前的场景测试环境下是否仍有场景信度低于预设阈值的应用场景,如果当前的场景测试环境下仍有场景信度低于预设阈值的应用场景则在当前的场景测试环境下选择一个场景信度低于预设阈值应用场景作为当前应用场景,如果当前的场景测试环境下没有场景信度低于预设阈值的应用场景则选择下一个场景测试环境下场景信度低于预设阈值的一个应用场景作为当前应用场景,最终选择好当前应用场景后跳转执行步骤2.4);如果能满足处理器的流片要求则结束测试并退出。所述步骤2.4)中生成当前应用场景的场景信度具体是指根据式(1)生成;ω=(TestCasefinished/TestCaseall)×ξxa0xa0xa0(1)式(1)中,ω为场景信度,TestCasefinished当前应用场景下已正确完成的测试用例数量,TestCaseall为当前应用场景下的所有测试用例数量总和,ξ为当前应用场景的信度系数,×为乘法运算符。所述步骤2.4)中获取加权平均值具体是指根据式(2)获取加权平均值作为系统级验证完备性度量值; W = Σ i = 0 n ( ω i × φ i ) - - - ( 2 ) ]]>式(2)中,W为用于作为系统级验证完备性度量值的加权平均值,ωi为所有应用场景中第i个应用场景的场景信度,φi为所有应用场景中第i个应用场景的权重,×为乘法运算符,n为所有应用场景的总数目,未测试应用场景的场景信度ωi的值为0。本发明具有下述优点:1、本发明根据处理器的应用领域构造多个应用场景,依次使用应用场景作为驱动,针对每一个应用场景对处理器进行测试生成场景信度,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值输出,在处理器系统级验证的每一个应用场景的时间点计算当前验证的完备性,定量描述处理器设计的验证可信度,能够通过定量描述处理器涉及的验证可信度为流片提供依据。2、传统的系统级验证方法着眼于处理器各模块的功能性、试图覆盖处理器各功能模块、功能组合以及指令组合,而实际上基于完整软件堆栈在操作系统层进行的测试很难准确评估测试使用处理器模块的情况,而本发明通过应用场景驱动的系统级验证,基于应用场景的系统级验证着眼于处理器的典型应用,主要视角重点不再关注处理器本身,而集中到处理器的典型应用场景,应用场景的构造应该主要考虑处理器实际使用环境、应用模式,同时兼顾最大限度的覆盖处理器功能,因此能够把有限的资源集中在使用最多的应用环境,尽量少的考虑系统级验证很难处理的覆盖性问题,因此能够在有限时间内做最有效率的测试,与处理器的实际应用贴近,不会发生过度测试的问题,具有验证速度快、验证效率高的优点。3、本发明以应用场景为单位构造测试现场生成测试环境,进一步通过场景测试环境对所有应用场景进行归类集中处理,因此与一个场景测试环境相关的所有测试用例在一个阶段测试完成,利用同一个场景测试环境完成多个应用场景的测试,能够把同一类型的工作集中完成,免去了重复整理测试环境,节省人力,缩短验证时间,具有测试环境利用率高、验证时间短的优点。
附图说明
图1为现有技术系统级验证测试内容分类示意图。图2为本发明实施例的方法流程示意图。图3为本发明实施例的原理示意图。
具体实施方式
如图2和图3所示,本实施例基于场景的处理器系统级验证完备性度量方法的实施步骤如下:1)根据处理器的应用领域构造典型应用场景;2)从典型应用场景中选择一个应用场景作为当前应用场景,在操作系统层面使用测试用例针对当前应用场景对处理器进行测试,根据正确完成的测试用例数量占当前应用场景下所有测试用例数量总和的比例生成场景信度,且将未测试应用场景的场景信度定义为0,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值;根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则返回执行步骤2)对下一个场景信度低于预设阈值的应用场景继续进行测试;如果能满足处理器的流片要求则结束测试并退出。如图3所示,本发明实施过程根据步骤1)和2)可分为构造应用场景阶段和完备性度量阶段。步骤1)系统级验证之初,根据处理器的应用领域构造多个典型应用场景(场景1、场景2、场景3、......、场景n)得到包含n个典型应用场景的应用场景集合,构造处理器实际运行会经历的应用场景(亦即需要进行的验证内容),应用场景应该包含处理器的大部分典型应用范围,然后系统级验证过程中,通过步骤2)针对每一个应用场景使用基于操作系统的测试用例进行测试,根据测试结果给每一个场景计算处理器设计正确性的场景信度,且将未测试应用场景的场景信度定义为0,将所有应用场景的场景信度的加权平均值作为系统级验证完备性度量值完成验证完备性度量,系统级验证完备性度量值标志了处理器设计正确的概率,能够作为处理器流片的参考。一、构造应用场景阶段。应用场景是处理器的一个应用环境,也是一个测试现场,典型应用场景主要着眼于处理器典型应用环境,兼顾覆盖处理器各项功能,通用微处理器的典型应用场景通常包括:IO密集型应用场景、访存密集型应用场景、调试场景、大规模计算场景、降级使用场景等。本实施例中,步骤1)构造典型应用场景阶段时,根据处理器的应用领域构造的典型应用场景包括IO密集型应用场景、访存密集型应用场景、调试场景、大规模计算场景、降级使用场景等,此外还可以根据处理器主要应用领域的需要添加其它特定的应用场景类型。通过构造应用场景阶段,生成应用场景集合S,S={a1,a2,a3,...,an},ai表示其中的一个应用场景。二、完备性度量阶段。本实施例中,步骤2)完备性度量阶段的详细步骤如下:2.1)针对典型应用场景中每一个应用场景分别设置权重和信度系数,权重为当前应用场景的测试项目在整个系统级验证中所有应用场景中的所有测试项目中所占的比例,所有应用场景的权重之和为1;信度系数为当前应用场景的测试项目所用到的处理器部件数量占处理器所有部件的比例,信度系数的值小于等于1。本实施例中,根据场景的重要性和场景验证环境的仿真情况,针对每一个应用场景还要建立它的权重φ和信度系数ξ,所有应用场景的权重之和为1,即满足:ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="249"/>φi为第i个场景测试环境对应应用场景的权重,n为所有应用场景的总数。权重φ标志该应用场景在整体系统级验证中占的比例,亦即该场景验证结果对整个系统级验证完备性的贡献程度;信度系数ξ描述了通过仿真环境对处理器在该场景的应用进行测试能获得的最大可信度,ξ小于等于1。当仿真环境能模拟该场景下可能使用到的所有处理器部件时信度系数ξ为1;如果存在测试使用的某些处理器部件不能进行仿真,表明该场景无法在仿真器上得到完全的验证,信度系数ξ应该小于1。例如片内设备的PHY(物理层模块),仿真器通常不能对其仿真,直接和设备控制器通信。因此,该设备的PHY不能被仿真环境验证,这部分功能的验证只能通过其它手段进行。使用该设备的场景其信度系数ξ应减去一个不能仿真部件占所有部件使用频率的比值。2.2)为典型应用场景中的每一个应用场景分别准备场景测试环境和测试用例。2.3)根据场景测试环境对所有应用场景进行归类集中,选择一个场景测试环境下的一个当前应用场景,跳转执行步骤2.4)。2.4)在操作系统层面使用测试用例针对当前应用场景对处理器进行测试,获取当前应用场景下正确完成的测试用例数量,根据正确完成的测试用例数量占当前应用场景所有测试用例数量总和的比例生成当前应用场景的测试完备度;根据当前应用场景的测试完备度和当前应用场景的信度系数生成当前应用场景的场景信度;将未测试应用场景的场景信度定义为0,根据所有应用场景的场景信度和所有应用场景的权重获取加权平均值作为当前应用场景的系统级验证完备性度量值。本实施例中,每一个应用场景都产生一个场景信度ω,场景信度ω的值为大于0小于1的常数,场景信度值ω代表针对该应用场景测试得出的处理器在该场景应用时的正确性,测试中发生的故障会导致场景信度降低,具体值可根据故障应用在场景所有测试应用中占的比例来决定。2.5)根据当前应用场景测试得到的系统级验证完备性度量值判断处理器的完备性是否满足处理器的流片要求,如果不能满足处理器的流片要求则判断当前的场景测试环境下是否仍有场景信度低于预设阈值的应用场景,如果当前的场景测试环境下仍有场景信度低于预设阈值的应用场景则在当前的场景测试环境下选择一个场景信度低于预设阈值应用场景作为当前应用场景,如果当前的场景测试环境下没有场景信度低于预设阈值的应用场景则选择下一个场景测试环境下场景信度低于预设阈值的一个应用场景作为当前应用场景,最终选择好当前应用场景后跳转执行步骤2.4);如果能满足处理器的流片要求则结束测试并退出。系统级验证完备性度量值W定量描述了处理器设计在当前验证阶段正确的概率,可作为处理器流片的依据。如果系统级验证完备性度量值过小,则表明当前对处理器的验证还不充分,或者处理器设计还存在某些缺陷,不能进行流片。本实施例中,步骤2.4)中生成当前应用场景的场景信度具体是指根据式(1)生成;ω=(TestCasefinished/TestCaseall)×ξxa0xa0xa0(1)式(1)中,ω为场景信度,TestCasefinished当前应用场景下已正确完成的测试用例数量,TestCaseall为当前应用场景下的所有测试用例数量总和,ξ为当前应用场景的信度系数,×为乘法运算符。除了上述式(1)以外,此外也还可以采用其他方式根据当前应用场景的测试完备度和当前应用场景的信度系数生成当前应用场景的场景信度。本实施例中,步骤2.4)中获取加权平均值具体是指根据式(2)获取加权平均值作为系统级验证完备性度量值; W = Σ i = 0 n ( ω i × φ i ) - - - ( 2 ) ]]>式(2)中,W为用于作为系统级验证完备性度量值的加权平均值,ωi为所有应用场景中第i个应用场景的场景信度,φi为所有应用场景中第i个应用场景的权重,×为乘法运算符,n为所有应用场景的总数目,未测试应用场景的场景信度ωi的值为0。除了上述式(2)以外,此外也还可以采用其他方式根据所有应用场景的场景信度和所有应用场景的权重获取加权平均值作为当前应用场景的系统级验证完备性度量值。以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。